/*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */
!(function (a, b, c, d) {
  var e = a(b);
  (a.fn.lazyload = function (f) {
    function g() {
      var b = 0;
      i.each(function () {
        var c = a(this);
        if (!j.skip_invisible || c.is(":visible"))
          if (a.abovethetop(this, j) || a.leftofbegin(this, j));
          else if (a.belowthefold(this, j) || a.rightoffold(this, j)) {
            if (++b > j.failure_limit) return !1;
          } else c.trigger("appear"), (b = 0);
      });
    }
    var h,
      i = this,
      j = { threshold: 0, failure_limit: 0, event: "scroll", effect: "show", container: b, data_attribute: "original", skip_invisible: !1, appear: null, load: null, placeholder: "" };
    return (
      f && (d !== f.failurelimit && ((f.failure_limit = f.failurelimit), delete f.failurelimit), d !== f.effectspeed && ((f.effect_speed = f.effectspeed), delete f.effectspeed), a.extend(j, f)),
      (h = j.container === d || j.container === b ? e : a(j.container)),
      0 === j.event.indexOf("scroll") &&
        h.bind(j.event, function () {
          return g();
        }),
      this.each(function () {
        var b = this,
          c = a(b);
        (b.loaded = !1),
          (c.attr("src") === d || c.attr("src") === !1) && c.is("img") && c.attr("src", j.placeholder),
          c.one("appear", function () {
            if (!this.loaded) {
              if (j.appear) {
                var d = i.length;
                j.appear.call(b, d, j);
              }
              a("<img />")
                .bind("load", function () {
                  var d = c.attr("data-" + j.data_attribute);
                  c.hide(), c.is("img") ? c.attr("src", d) : c.css("background-image", "url('" + d + "')"), c[j.effect](j.effect_speed), (b.loaded = !0);
                  var e = a.grep(i, function (a) {
                    return !a.loaded;
                  });
                  if (((i = a(e)), j.load)) {
                    var f = i.length;
                    j.load.call(b, f, j);
                  }
                })
                .attr("src", c.attr("data-" + j.data_attribute));
            }
          }),
          0 !== j.event.indexOf("scroll") &&
            c.bind(j.event, function () {
              b.loaded || c.trigger("appear");
            });
      }),
      e.bind("resize", function () {
        g();
      }),
      /(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion) &&
        e.bind("pageshow", function (b) {
          b.originalEvent &&
            b.originalEvent.persisted &&
            i.each(function () {
              a(this).trigger("appear");
            });
        }),
      a(c).ready(function () {
        g();
      }),
      this
    );
  }),
    (a.belowthefold = function (c, f) {
      var g;
      return (g = f.container === d || f.container === b ? (b.innerHeight ? b.innerHeight : e.height()) + e.scrollTop() : a(f.container).offset().top + a(f.container).height()), g <= a(c).offset().top - f.threshold;
    }),
    (a.rightoffold = function (c, f) {
      var g;
      return (g = f.container === d || f.container === b ? e.width() + e.scrollLeft() : a(f.container).offset().left + a(f.container).width()), g <= a(c).offset().left - f.threshold;
    }),
    (a.abovethetop = function (c, f) {
      var g;
      return (g = f.container === d || f.container === b ? e.scrollTop() : a(f.container).offset().top), g >= a(c).offset().top + f.threshold + a(c).height();
    }),
    (a.leftofbegin = function (c, f) {
      var g;
      return (g = f.container === d || f.container === b ? e.scrollLeft() : a(f.container).offset().left), g >= a(c).offset().left + f.threshold + a(c).width();
    }),
    (a.inviewport = function (b, c) {
      return !(a.rightoffold(b, c) || a.leftofbegin(b, c) || a.belowthefold(b, c) || a.abovethetop(b, c));
    }),
    a.extend(a.expr[":"], {
      "below-the-fold": function (b) {
        return a.belowthefold(b, { threshold: 0 });
      },
      "above-the-top": function (b) {
        return !a.belowthefold(b, { threshold: 0 });
      },
      "right-of-screen": function (b) {
        return a.rightoffold(b, { threshold: 0 });
      },
      "left-of-screen": function (b) {
        return !a.rightoffold(b, { threshold: 0 });
      },
      "in-viewport": function (b) {
        return a.inviewport(b, { threshold: 0 });
      },
      "above-the-fold": function (b) {
        return !a.belowthefold(b, { threshold: 0 });
      },
      "right-of-fold": function (b) {
        return a.rightoffold(b, { threshold: 0 });
      },
      "left-of-fold": function (b) {
        return !a.rightoffold(b, { threshold: 0 });
      },
    });
})(jQuery, window, document);
